﻿namespace Tinter.Common.Pagination
{
    /// <summary>
    /// Represents information of a paged collection. Such as page size and total item count.
    /// </summary>
    public interface IPageInfo
    {
        /// <summary>
        /// Item count in current page.
        /// </summary>
        int ItemCount { get; }

        /// <summary>
        /// One-based page index of current page.
        /// </summary>
        int PageNumber { get; }

        /// <summary>
        /// Maximum item count in one page.
        /// </summary>
        int PageSize { get; }

        /// <summary>
        /// Total item count in all pages.
        /// </summary>
        int TotalItemCount { get; }

        /// <summary>
        /// Total page count.
        /// </summary>
        int TotalPageCount { get; }
    }
}
